package app.common.utils.cjt;

import lombok.Data;

/**
 * 使用用户永久授权码获取token
 * @link <a href="https://open.chanjet.com/docs/file/apiFile/common/app_settled/app_settled_auth?id=31645">使用用户永久授权码获取token</a>
 * @author feizns
 * @since 2023/3/31
 */
@Data
public class AuthTokenGetTokenByPermanentCodeResult {

    /**
     * 访问token，请求业务接口的openToken字段
     */
    private String access_token;

    /**
     * 刷新token
     */
    private String refresh_token;

    /**
     * 授权范围
     */
    private String scope;

    /**
     * 访问token的过期时间
     */
    private Long expires_in;

    /**
     * 用户ID
     */
    private String user_id;

    /**
     * 企业ID
     */
    private String org_id;

    /**
     * 应用名
     */
    private String app_name;

    /**
     * 刷新token的过期时间
     */
    private String refresh_expires_in;

    /**
     * sid
     */
    private String sid;

    /**
     * 用户永久授权码
     */
    private String user_auth_permanent_code;

    /**
     * 计算过期时间
     * @return 过期毫秒时间
     */
    public long expiredTimeMillis() {
        long effectiveTime = (long) ((expires_in * 1000) * 0.8);
        return System.currentTimeMillis() + effectiveTime;
    }

}
